package cn.iocoder.yudao.module.vote.controller.admin.voteinfo.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
* 投票规则 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class VoteInfoBaseVO {

    @ApiModelProperty(value = "投票名称")
    @NotNull(message= "投票名称不能为空")
    private String voteName;

    @ApiModelProperty(value = "投票开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @NotNull(message = "投票开始时间不能为空")
    private Date beginTime;

    @ApiModelProperty(value = "投票结束时间")
    @NotNull(message = "投票结束时间不能为空")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date endTime;

    @ApiModelProperty(value = "投票人数")
    private Integer voteCount;

    @ApiModelProperty(value = "限制最高投票人数")
    private Integer limitCount;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "导入次数")
    private String importCount;
    /**
     * 投票类型，1：职称评审，2：年度评审
     */
    @ApiModelProperty(value = "投票类型")
    private Integer voteType;

    @ApiModelProperty(value = "引用其他投票规则的id")
    private Integer quoteVoteId;
    @ApiModelProperty(value = "是否引用其他投票规则用户信息")
    private Boolean isQuote;



    /**
     * 不同意最小分数
     */
    private Integer noagreeMinScope;
    /**
     * 不同意最大分数
     */
    private Integer noagreeMaxScope;
    /**
     * 同意最大分数
     */
    private Integer agreeMaxScope;
    /**
     * 同意最小分数
     */
    private Integer agreeMinScope;

    /**
     * 是否打分
     */
    private Boolean isScope;

    @ApiModelProperty(value = "投票模式:1投票模式，2:打分模式")
    private Integer voteMode;
    /**
     * 是否显示单位排名
     */
    private Boolean isUnitSort;

    @ApiModelProperty(value = "排序")
    private Integer weight;

    @ApiModelProperty(value = "排序")
    private Boolean isPush;
}
